package cn.xiaoming.car.server.account.dao.persist.repository;

import cn.xiaoming.car.server.account.pojo.entity.Dept;
import cn.xiaoming.car.server.account.pojo.entity.User;
import cn.xiaoming.car.server.account.pojo.vo.AdminListItemVO;
import cn.xiaoming.car.server.account.pojo.vo.DeptListItemVO;
import cn.xiaoming.car.server.account.pojo.vo.DeptStandardVO;
import cn.xiaoming.car.server.common.pojo.vo.PageData;

/**
 * 处理部门数据的存储库接口
 *
 * @author java@John.cn
 * @version 1.0
 */
public interface IDeptRepository {
    /**
     * 插入部门数据
     * @param dept
     * @return
     */
    int insert(Dept dept);

    /**
     * 根据ID删除部门
     * @param id
     * @return
     */
    int deleteById(Long id);

    /**
     * 根据部门id修改部门的数据
     *
     * @param dept 封装了部门id和新的数据的对象
     * @return 受影响的行数
     */
    int updateById(Dept dept);

    /**
     * 根据部门名统计用户数据的数量
     *
     * @param deptName 用户名
     * @return 匹配用户名的用户数据的数据
     */
    int countByDeptName(String deptName);

    /**
     * 根据部门id查询部门数据详情
     *
     * @param id 部门id
     * @return 匹配的部门数据详情，如果没有匹配的数据，则返回null
     */
    DeptStandardVO getStandardById(Long id);

    /**
     * 查询部门数据列表
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 用户数据列表
     */
    PageData<DeptListItemVO> list(Integer pageNum, Integer pageSize);
}
